package com.xxg.renrencommon.domain.bean;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 消息信息
 *
 * @author xxg
 * @date 2020/12/5
 */
@Data
@Document(collection = "messageInfo")
@ApiModel(value = "MessageInfo", description = "消息信息")
public class MessageInfo implements Serializable {
    /**
     * 数据库记录ID，主键
     */
    @ApiModelProperty("主键")
    private String id;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 记录更新时间
     */
    @ApiModelProperty("记录更新时间")
    private Date updateTime;

    /**
     * 消息类型 0-系统消息 1-通知消息
     */
    @ApiModelProperty("消息类型 0-系统消息 1-通知消息")
    private Integer type;

    /**
     * 内容明细
     */
    @ApiModelProperty("内容明细")
    private MessageDetail detail;

    /**
     * 是否删除
     */
    @ApiModelProperty(value = "是否删除", hidden = true)
    private Boolean isDelete;

    /**
     * 是否已读
     */
    @ApiModelProperty("是否已读")
    private Boolean hasRead;

    /**
     * 发送者ID 没有填null
     */
    @ApiModelProperty("发送者ID 没有填null")
    private String senderId;

    /**
     * 发送者类型 没有填null
     */
    @ApiModelProperty("发送者类型 没有填null")
    private Integer senderType;

    /**
     * 图片信息
     */
    @ApiModelProperty("图片信息")
    private List<String> images;

    /**
     * 接收者ID
     */
    @ApiModelProperty("接收者ID")
    private Integer recipientId;

    /**
     * 接收者类型
     */
    @ApiModelProperty("接收者类型")
    private Integer recipientType;

    /**
     * 发送结果 json
     */
    @ApiModelProperty(value = "发送结果 json", hidden = true)
    private String result;

    /**
     * 发送结果状态码 0-成功 -1-失败
     */
    @ApiModelProperty(value = "发送结果状态码 0-成功 -1-失败", hidden = true)
    private String resultCode;

    /**
     * 重试次数 初始0
     */
    @ApiModelProperty(value = "重试次数 初始0", hidden = true)
    private Integer retry;
}